/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.sys.service;

import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.service.BaseService;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.modules.sys.dao.AgentAddDao;
import com.thinkgem.jeesite.modules.sys.dao.ShopAddDao;
import com.thinkgem.jeesite.modules.sys.dao.UserDao;
import com.thinkgem.jeesite.modules.sys.entity.Role;
import com.thinkgem.jeesite.modules.sys.entity.TbMpWallet;
import com.thinkgem.jeesite.modules.sys.entity.TbMpWalletStream;
import com.thinkgem.jeesite.modules.sys.entity.User;
import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 系统管理，安全相关实体的管理类,包括用户、角色、菜单.
 * @author ThinkGem
 * @version 2013-12-05
 */
@Service
@Transactional(readOnly = false)
public class AgentAddService extends BaseService {
	
	@Autowired
	private AgentAddDao agentAddDao;
	@Autowired
	private UserDao userDao;
	@Autowired
	private ShopAddDao shopAddDao;
	
	public Page<User> findUser(Page<User> page, User user) {
		// 设置分页参数
		user.setPage(page);
		// 执行分页查询
 		List list=agentAddDao.findList(user);
		page.setList(list);
		return page;
	}
	//添加或修改
	@Transactional(readOnly = false)
	public void saveUser(User user) {
		Role role=new Role();
		role.setId("2");
		user.setRole(role);
		if (StringUtils.isBlank(user.getId())){
			user.preInsert();
			user.setCreateTime(new Date());
			//默认这算比例为0.6
			user.setPackingFee(new BigDecimal(0.6));
			agentAddDao.insert(user);
			agentAddDao.inserUserRole(user);
			//代理商添加成功后，初始化麻雀钱包账户
			TbMpWallet tbMpWallet=new TbMpWallet();
			tbMpWallet.setUid(user.getId());
			tbMpWallet.setCreateTime(new Date());
			tbMpWallet.setUpdateTime(new Date());
			tbMpWallet.setUserType(2);
			Integer rows=shopAddDao.insertMpWallet(tbMpWallet);
		}else{
			// 清除原用户机构用户缓存
			User oldUser = userDao.get(user.getId());
			// 更新用户数据
			user.preUpdate();
			agentAddDao.update(user);
		}
		// 更新用户与角色关联
		//userDao.deleteUserRole(user);
		// 清除用户缓存
		UserUtils.clearCache(user);
	}
	//得到商户所在的省，市，区
	public User userAreas(String uid){
		return agentAddDao.userAreas(uid);
	}

	public Page<TbMpWalletStream> mpWalletStream(Page<TbMpWalletStream> page, TbMpWalletStream tbMpWalletStream) {
		//根据用户id‘得到麻雀流水记录
		tbMpWalletStream.setPage(page);
		List list=agentAddDao.mpwalletStream(tbMpWalletStream);
		page.setList(list);
		return page;
	}
	//修改代理商的物业折算比例
	public void updatePackagefee(User user){
		Integer rows=agentAddDao.updatePackagefee(user);
	}

}

